package com.divemotor.ventarepuestosinternet.controller;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.LazyDataModel;
import org.springframework.dao.DataIntegrityViolationException;

import com.divemotor.ventarepuestosinternet.beans.adapter.DataAdapter;
import com.divemotor.ventarepuestosinternet.beans.adapter.ImagenAdapter;
import com.divemotor.ventarepuestosinternet.beans.adapter.ModeloFabricaAdapter;
import com.divemotor.ventarepuestosinternet.beans.adapter.ModeloFabricaDataAdapter;
import com.divemotor.ventarepuestosinternet.beans.adapter.SubGrupoAdapter;
import com.divemotor.ventarepuestosinternet.beans.form.ModeloFabricaBeanForm;
import com.divemotor.ventarepuestosinternet.beans.lazy.ModeloFabricaLazy;
import com.divemotor.ventarepuestosinternet.beans.lazy.RepuestoImagenLazy;
import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.Imagen;
import com.divemotor.ventarepuestosinternet.model.ImagenRepuesto;
import com.divemotor.ventarepuestosinternet.model.ImagenRepuestoNroSa;
import com.divemotor.ventarepuestosinternet.model.ModeloFabrica;
import com.divemotor.ventarepuestosinternet.model.ModeloFabricaPK;
import com.divemotor.ventarepuestosinternet.model.Repuesto;
import com.divemotor.ventarepuestosinternet.model.SubGrupo;
import com.divemotor.ventarepuestosinternet.service.GrupoService;
import com.divemotor.ventarepuestosinternet.service.ImagenRepuestoService;
import com.divemotor.ventarepuestosinternet.service.ImagenService;
import com.divemotor.ventarepuestosinternet.service.MarcaService;
import com.divemotor.ventarepuestosinternet.service.ModeloFabricaService;
import com.divemotor.ventarepuestosinternet.service.RepuestoService;
import com.divemotor.ventarepuestosinternet.service.SubGrupoService;
import com.divemotor.ventarepuestosinternet.service.TipoComponenteService;
import com.divemotor.ventarepuestosinternet.util.Constantes;
import com.divemotor.ventarepuestosinternet.util.FacesContextUtil;


@ManagedBean(name="gestionModeloController")
@ViewScoped
public class GestionModeloController implements Serializable{

	private static final long serialVersionUID = 6137944427168847888L;

	private static final Logger logger = Logger.getLogger(GestionModeloController.class);
	
	@ManagedProperty(value="#{modeloFabricaService}")
	private ModeloFabricaService modeloFabricaService;
	@ManagedProperty(value="#{marcaService}")
	private MarcaService marcaService;
	@ManagedProperty(value = "#{tipoComponenteService}")
	private TipoComponenteService tipoComponenteService;
	@ManagedProperty(value="#{imagenService}")
	private ImagenService imagenService;
	@ManagedProperty(value="#{imagenRepuestoService}")
	private ImagenRepuestoService imagenRepuestoService;
	@ManagedProperty(value="#{repuestoService}")
	private RepuestoService repuestoService;
	@ManagedProperty(value="#{grupoService}")
	private GrupoService grupoService;
	@ManagedProperty(value="#{subGrupoService}")
	private SubGrupoService subGrupoService;
	
	private List<DataAdapter> listadoMarca;
	private List<DataAdapter> listadoTipoComponente;
	private List<ModeloFabricaDataAdapter> listadoModelo;
	
	private List<ModeloFabricaAdapter> listadoModeloGestion;
	private ModeloFabricaAdapter seleccionModelo;
	private ModeloFabricaBeanForm modeloFabricaBeanForm;
	
	
	private SubGrupo subGrupoSeleccionadoGestionImagenes;
	private List<Imagen> listaImagenesSubGrupoSeleccionado;
	private boolean deshabilitarCargaImagenes;
	private List<ImagenRepuesto> listaRepuestosAsignadosImagenSeleccionada;
	private Imagen imagenSeleccionadaGestionRepuestos;
	private LazyDataModel<Repuesto> listaRepuestosBusquedaLazy;
	private Repuesto repuestoFiltro;
	
	private Imagen imagenEditar;
	private Imagen imagenEliminar;
	
	private ImagenRepuesto imagenRepuestoAsignar;
	private ImagenRepuesto imagenRepuestoEditar;
	private ImagenRepuesto imagenRepuestoDesasignar;
	
	private Integer grupoSeleccionado;
	private Integer subGrupoSeleccionado;
	private List<DataAdapter> listaGrupoImagen;
	private List<DataAdapter> listaSubGrupoImagen;
	
	private LazyDataModel<ModeloFabricaAdapter> listaModeloFabricaLazy;
	
	private List<ImagenRepuestoNroSa> listaNumeroSA;
	private ImagenRepuestoNroSa selectNumero;
	private ImagenRepuesto selectImagenRepuestoSA;
	private String nroCorrSa;
	private String nroExtSa;
	
	public GestionModeloController(){
		imagenRepuestoAsignar = new ImagenRepuesto();
		modeloFabricaBeanForm = new ModeloFabricaBeanForm();
	}
	
	@PostConstruct
	public void init(){
		listarMarcas();
		listarTipoComponente();
	}
	
	public void seleccionarModelo(ModeloFabricaAdapter seleccionModelo){
		listarGrupos();
		this.seleccionModelo = seleccionModelo;
		grupoSeleccionado 		= Constantes.NO_SELECCIONADO;
		subGrupoSeleccionado	= Constantes.NO_SELECCIONADO;
	}
	
	public void buscar(){
		try {
			listadoModeloGestion = modeloFabricaService.buscarModelosFabricaAdapter(modeloFabricaBeanForm);
		} catch (Exception e) {
			logger.error("EX* buscar: " + e.getMessage());
		}
	}
	
	public void listarTipoComponente(){
		try {
			listadoTipoComponente = tipoComponenteService.listarComboTipoComponente();
		} catch (Exception e) {
			logger.error("EX* listarTipoComponente: " + e.getMessage());
		}
	}
	
	public void listarMarcas(){
		logger.info("listarMarcas");
		try {
			listadoMarca = marcaService.listarComboMarcas();
		} catch (Exception e) {
			logger.error("EX* listarMarcas: " + e.getMessage());
		}
	}
	
	public void listarModelo(){
		logger.info("listarModelo");
		try {
			listadoModelo = modeloFabricaService.buscarComboModelosFabrica();
		} catch (Exception e) {
			logger.error("EX* buscar : " + e.getMessage());
		}
	}
	
	public void listarGrupos() {
		try {
			listaGrupoImagen = grupoService.obtenerListaGruposActivos();
		} catch (DivemotorBusinessException e) {
			logger.error("EX* listarGrupos: " + e.getMessage());
		}
	}
	
	public void recargarListaSubGrupo(){
		logger.info("listarSubGrupo");
		try {
			listaSubGrupoImagen = subGrupoService.buscarPorGrupo(grupoSeleccionado);
		} catch (Exception e) {
			logger.error("EX* listarSubGrupo : " + e.getMessage());
		}
	}
	
	public void recargarImagenes(){
		logger.info("recargarImagenes");
		try {
			ImagenAdapter adapter = new ImagenAdapter();
			
			ModeloFabricaAdapter modFabAdptr = new ModeloFabricaAdapter();
			modFabAdptr.setIdMarca(seleccionModelo.getIdMarca());
			modFabAdptr.setIdTipoComponente(seleccionModelo.getIdTipoComponente());
			modFabAdptr.setIdModeloFabrica(seleccionModelo.getIdModeloFabrica());
			adapter.setModeloFabrica(modFabAdptr);
			SubGrupoAdapter subGrupo = new SubGrupoAdapter();
			subGrupo.setIdSubgrupo(subGrupoSeleccionado);
			adapter.setSubGrupo(subGrupo);
			
			listaImagenesSubGrupoSeleccionado = imagenService.listarImagenesPorSubGrupoModeloFab(adapter);
		} catch (Exception e) {
			logger.error("EX* recargarImagenes : " + e.getMessage());
		}
	}
	
	public void limpiarFiltro(){
		modeloFabricaBeanForm.limpiarForm();
	}
	
	public void subirArchivo(FileUploadEvent event) {
		try {
			Imagen imagenNueva = new Imagen();
			imagenNueva.setArchivo(event.getFile().getInputstream());
			imagenNueva.setNombreArchivo(event.getFile().getFileName());
			imagenNueva.setSubGrupo(new SubGrupo(subGrupoSeleccionado));
			
			ModeloFabricaPK modeloFabricaPK = new ModeloFabricaPK();
			modeloFabricaPK.setIdMarca(seleccionModelo.getIdMarca());
			modeloFabricaPK.setIdTipoComponente(seleccionModelo.getIdTipoComponente());
			modeloFabricaPK.setIdModeloFabrica(seleccionModelo.getIdModeloFabrica());
			
			ModeloFabrica modeloFabrica = new ModeloFabrica();
			modeloFabrica.setModeloFabricaPK(modeloFabricaPK);
			
			imagenNueva.setModeloFabrica(modeloFabrica);
			
			imagenService.insertar(imagenNueva);
			recargarImagenes();
			FacesContextUtil.info(Constantes.MSJ_IMAGEN_CARGADO_OK);
			
		} catch (DivemotorBusinessException e) {
			logger.error("EX* subirArchivo DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* subirArchivo Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void eliminarImagen() {
		try {
			imagenService.eliminarImagen(imagenEliminar);
			recargarImagenes();
			FacesContextUtil.info(Constantes.MSJ_IMAGEN_ELIMINADO_OK);
		} catch (DivemotorBusinessException e) {
			logger.error("EX* eliminarImagen DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* eliminarImagen Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);		}
	}
	
	public void editarImagen() {
		try {
			imagenService.editarImagen(imagenEditar);
			recargarImagenes();																							  
			FacesContextUtil.info(Constantes.MSJ_IMAGEN_ACTUALIZADO_OK);
		} catch (DivemotorBusinessException e) {
			logger.error("EX* editarImagen DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* editarImagen Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void seleccionarImagenGestionRepuestos() {
		try {
			listaRepuestosAsignadosImagenSeleccionada = imagenRepuestoService.listarImagenesRepuestosPorImagen(imagenSeleccionadaGestionRepuestos);
			repuestoFiltro = new Repuesto();
			buscarRepuestos();
		} catch (DivemotorBusinessException e) {
			logger.error("EX* seleccionarImagenGestionRepuestos DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* seleccionarImagenGestionRepuestos Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void agregarImagenRepuestoNroSa(){
		try {
			ImagenRepuestoNroSa imgRptoNroSa = new ImagenRepuestoNroSa(selectImagenRepuestoSA.getIdImagenRepuesto(), 
																	   nroCorrSa, nroExtSa);
			imagenRepuestoService.insertarNumero(imgRptoNroSa);
			listarImagenRepuestoNroSA(selectImagenRepuestoSA);
			FacesContextUtil.info(Constantes.MSJ_IMG_RTO_NRO_SA_REGISTRO_OK);
		} catch (DataIntegrityViolationException e) {
			logger.error("EX* listarImagenRepuestoNroSA DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_IMG_RTO_NRO_SA_IDENTICO_OK);
		} catch (Exception e) {
			logger.error("EX* listarImagenRepuestoNroSA Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void eliminarEliminarNumeroSa(){
		try {
			selectNumero.setIndEstado(Constantes.ESTADO_ELIMINADO);
			imagenRepuestoService.eliminarNumeroSa(selectNumero);
			FacesContextUtil.info(Constantes.MSJ_IMG_RTO_NRO_SA_ELIMINADO_OK);
			listarImagenRepuestoNroSA(selectImagenRepuestoSA);
		} catch (Exception e) {
			logger.error("EX* eliminarEliminarNumeroSa Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void listarImagenRepuestoNroSA(ImagenRepuesto imgRepto){
		try {
			selectImagenRepuestoSA = imgRepto;
			listaNumeroSA = imagenRepuestoService.listarNumeroSaAdapter(imgRepto);
			nroCorrSa = Constantes.EMPTY;
			nroExtSa  = Constantes.EMPTY;
		} catch (Exception e) {
			logger.error("EX* listarImagenRepuestoNroSA Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void buscarModelofabricaSeleccion() {
		ModeloFabricaAdapter modeloFabrica = new ModeloFabricaAdapter();
		modeloFabrica.setIdMarca(seleccionModelo.getIdMarca());
		modeloFabrica.setIdTipoComponente(seleccionModelo.getIdTipoComponente());
		listaModeloFabricaLazy = new ModeloFabricaLazy(modeloFabricaService, modeloFabrica);
	}
	
	public void buscarRepuestos() {
		logger.info("buscarRepuestos");
		listaRepuestosBusquedaLazy = new RepuestoImagenLazy(repuestoService, repuestoFiltro, imagenSeleccionadaGestionRepuestos); 
	}
	
	public void editarImagenRepuesto() {
		try {
			if(!imagenRepuestoService.existeImagenRepuesto(imagenRepuestoEditar)){
				imagenRepuestoService.actualizar(imagenRepuestoEditar);
				listaRepuestosAsignadosImagenSeleccionada = imagenRepuestoService.listarImagenesRepuestosPorImagen(imagenSeleccionadaGestionRepuestos);
				buscarRepuestos();
				FacesContextUtil.info(Constantes.MSJ_REPUESTO_IMAGEN_ACTUALIZADO_OK);
			} else {
				RequestContext.getCurrentInstance().addCallbackParam("ocurrioError", true);
				FacesContextUtil.error(Constantes.MSJ_REPUESTO_EN_SECUENCIA);
			}	
		} catch (DivemotorBusinessException e) {
			logger.error("EX* editarImagenRepuesto DivemotorBusinessException: " + e.getMessage());
			RequestContext.getCurrentInstance().addCallbackParam("ocurrioError", true);
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* editarImagenRepuesto Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void asignarImagenRepuesto() {
		try {
			imagenRepuestoAsignar.setImagen(imagenSeleccionadaGestionRepuestos);
			if(!imagenRepuestoService.existeImagenRepuesto(imagenRepuestoAsignar)) {
				imagenRepuestoService.insertarImagen(imagenRepuestoAsignar);
				listaRepuestosAsignadosImagenSeleccionada = imagenRepuestoService.listarImagenesRepuestosPorImagen(imagenSeleccionadaGestionRepuestos);
				buscarRepuestos();
				FacesContextUtil.info(Constantes.MSJ_REPUESTO_IMAGEN_ASINADO_OK);
			} else {
				RequestContext.getCurrentInstance().addCallbackParam("ocurrioError", true);
				FacesContextUtil.error(Constantes.MSJ_REPUESTO_EN_SECUENCIA);
			}
		} catch (DivemotorBusinessException e) {
			logger.error("EX* asignarImagenRepuesto DivemotorBusinessException: " + e.getMessage());
			RequestContext.getCurrentInstance().addCallbackParam("ocurrioError", true);
			FacesContextUtil.warn(e.getMessage());
		}
	}
	
	public void desasignarImagenRepuesto() {
		try {
			imagenRepuestoService.desAsignarRepuestoAImagen(imagenRepuestoDesasignar); // actualizar el estado del repuesto: ELIMINADO
			listaRepuestosAsignadosImagenSeleccionada = imagenRepuestoService.listarImagenesRepuestosPorImagen(imagenSeleccionadaGestionRepuestos);
			buscarRepuestos();
			FacesContextUtil.info(Constantes.MSJ_REPUESTO_IMAGEN_DESASIGNADO_OK);
		} catch (DivemotorBusinessException e) {
			logger.error("EX* desasignarImagenRepuesto DivemotorBusinessException: " + e.getMessage());
			FacesContextUtil.warn(e.getMessage());
		} catch (Exception e) {
			logger.error("EX* desasignarImagenRepuesto Exception: " + e.getMessage());
			FacesContextUtil.error(Constantes.MSJ_ERROR_SISTEMA);
		}
	}
	
	public void limpiarRepuestoAsignar() {
		imagenRepuestoAsignar.setCantidadReferencial(null);
		imagenRepuestoAsignar.setPosicion(null);
		imagenRepuestoAsignar.setObservacion(null);
		imagenRepuestoAsignar.setEstado(Constantes.STR_NO_SELECCIONADO);
	}
	
	public void limpiarFiltroRepuestos() {
		repuestoFiltro = new Repuesto();
	}

	public List<DataAdapter> getListadoMarca() {
		return listadoMarca;
	}

	public void setListadoMarca(List<DataAdapter> listadoMarca) {
		this.listadoMarca = listadoMarca;
	}

	public List<DataAdapter> getListadoTipoComponente() {
		return listadoTipoComponente;
	}

	public void setListadoTipoComponente(List<DataAdapter> listadoTipoComponente) {
		this.listadoTipoComponente = listadoTipoComponente;
	}

	public ModeloFabricaBeanForm getModeloFabricaBeanForm() {
		return modeloFabricaBeanForm;
	}

	public void setModeloFabricaBeanForm(ModeloFabricaBeanForm modeloFabricaBeanForm) {
		this.modeloFabricaBeanForm = modeloFabricaBeanForm;
	}

	public List<ModeloFabricaDataAdapter> getListadoModelo() {
		return listadoModelo;
	}

	public void setListadoModelo(List<ModeloFabricaDataAdapter> listadoModelo) {
		this.listadoModelo = listadoModelo;
	}

	public void setModeloFabricaService(ModeloFabricaService modeloFabricaService) {
		this.modeloFabricaService = modeloFabricaService;
	}

	public void setMarcaService(MarcaService marcaService) {
		this.marcaService = marcaService;
	}

	public void setTipoComponenteService(TipoComponenteService tipoComponenteService) {
		this.tipoComponenteService = tipoComponenteService;
	}

	public List<ModeloFabricaAdapter> getListadoModeloGestion() {
		return listadoModeloGestion;
	}

	public void setListadoModeloGestion(List<ModeloFabricaAdapter> listadoModeloGestion) {
		this.listadoModeloGestion = listadoModeloGestion;
	}

	public SubGrupo getSubGrupoSeleccionadoGestionImagenes() {
		return subGrupoSeleccionadoGestionImagenes;
	}

	public void setSubGrupoSeleccionadoGestionImagenes(SubGrupo subGrupoSeleccionadoGestionImagenes) {
		this.subGrupoSeleccionadoGestionImagenes = subGrupoSeleccionadoGestionImagenes;
	}

	public List<Imagen> getListaImagenesSubGrupoSeleccionado() {
		return listaImagenesSubGrupoSeleccionado;
	}

	public void setListaImagenesSubGrupoSeleccionado(List<Imagen> listaImagenesSubGrupoSeleccionado) {
		this.listaImagenesSubGrupoSeleccionado = listaImagenesSubGrupoSeleccionado;
	}

	public ModeloFabricaAdapter getSeleccionModelo() {
		return seleccionModelo;
	}

	public void setSeleccionModelo(ModeloFabricaAdapter seleccionModelo) {
		this.seleccionModelo = seleccionModelo;
	}

	public List<ImagenRepuesto> getListaRepuestosAsignadosImagenSeleccionada() {
		return listaRepuestosAsignadosImagenSeleccionada;
	}

	public void setListaRepuestosAsignadosImagenSeleccionada(List<ImagenRepuesto> listaRepuestosAsignadosImagenSeleccionada) {
		this.listaRepuestosAsignadosImagenSeleccionada = listaRepuestosAsignadosImagenSeleccionada;
	}

	public Imagen getImagenSeleccionadaGestionRepuestos() {
		return imagenSeleccionadaGestionRepuestos;
	}

	public void setImagenSeleccionadaGestionRepuestos(Imagen imagenSeleccionadaGestionRepuestos) {
		this.imagenSeleccionadaGestionRepuestos = imagenSeleccionadaGestionRepuestos;
	}

	public LazyDataModel<Repuesto> getListaRepuestosBusquedaLazy() {
		return listaRepuestosBusquedaLazy;
	}

	public void setListaRepuestosBusquedaLazy(
			LazyDataModel<Repuesto> listaRepuestosBusquedaLazy) {
		this.listaRepuestosBusquedaLazy = listaRepuestosBusquedaLazy;
	}

	public Repuesto getRepuestoFiltro() {
		return repuestoFiltro;
	}

	public void setRepuestoFiltro(Repuesto repuestoFiltro) {
		this.repuestoFiltro = repuestoFiltro;
	}

	public Imagen getImagenEditar() {
		return imagenEditar;
	}

	public void setImagenEditar(Imagen imagenEditar) {
		this.imagenEditar = imagenEditar;
	}

	public void setImagenService(ImagenService imagenService) {
		this.imagenService = imagenService;
	}

	public void setImagenRepuestoService(ImagenRepuestoService imagenRepuestoService) {
		this.imagenRepuestoService = imagenRepuestoService;
	}

	public void setRepuestoService(RepuestoService repuestoService) {
		this.repuestoService = repuestoService;
	}

	public boolean isDeshabilitarCargaImagenes() {
		return deshabilitarCargaImagenes;
	}

	public void setDeshabilitarCargaImagenes(boolean deshabilitarCargaImagenes) {
		this.deshabilitarCargaImagenes = deshabilitarCargaImagenes;
	}

	public List<DataAdapter> getListaGrupoImagen() {
		return listaGrupoImagen;
	}

	public void setListaGrupoImagen(List<DataAdapter> listaGrupoImagen) {
		this.listaGrupoImagen = listaGrupoImagen;
	}

	public List<DataAdapter> getListaSubGrupoImagen() {
		return listaSubGrupoImagen;
	}

	public void setListaSubGrupoImagen(List<DataAdapter> listaSubGrupoImagen) {
		this.listaSubGrupoImagen = listaSubGrupoImagen;
	}

	public void setGrupoService(GrupoService grupoService) {
		this.grupoService = grupoService;
	}

	public Integer getGrupoSeleccionado() {
		return grupoSeleccionado;
	}

	public void setGrupoSeleccionado(Integer grupoSeleccionado) {
		this.grupoSeleccionado = grupoSeleccionado;
	}

	public Integer getSubGrupoSeleccionado() {
		return subGrupoSeleccionado;
	}

	public void setSubGrupoSeleccionado(Integer subGrupoSeleccionado) {
		this.subGrupoSeleccionado = subGrupoSeleccionado;
	}

	public void setSubGrupoService(SubGrupoService subGrupoService) {
		this.subGrupoService = subGrupoService;
	}
	
	public ImagenRepuestoNroSa getSelectNumero() {
		return selectNumero;
	}

	public void setSelectNumero(ImagenRepuestoNroSa selectNumero) {
		this.selectNumero = selectNumero;
	}
	
	public List<ImagenRepuestoNroSa> getListaNumeroSA() {
		return listaNumeroSA;
	}

	public void setListaNumeroSA(List<ImagenRepuestoNroSa> listaNumeroSA) {
		this.listaNumeroSA = listaNumeroSA;
	}

	public ImagenRepuesto getSelectImagenRepuestoSA() {
		return selectImagenRepuestoSA;
	}

	public void setSelectImagenRepuestoSA(ImagenRepuesto selectImagenRepuestoSA) {
		this.selectImagenRepuestoSA = selectImagenRepuestoSA;
	}

	public String getNroCorrSa() {
		return nroCorrSa;
	}

	public void setNroCorrSa(String nroCorrSa) {
		this.nroCorrSa = nroCorrSa;
	}

	public String getNroExtSa() {
		return nroExtSa;
	}

	public void setNroExtSa(String nroExtSa) {
		this.nroExtSa = nroExtSa;
	}

	public ImagenRepuesto getImagenRepuestoAsignar() {
		return imagenRepuestoAsignar;
	}

	public void setImagenRepuestoAsignar(ImagenRepuesto imagenRepuestoAsignar) {
		this.imagenRepuestoAsignar = imagenRepuestoAsignar;
	}

	public LazyDataModel<ModeloFabricaAdapter> getListaModeloFabricaLazy() {
		return listaModeloFabricaLazy;
	}

	public void setListaModeloFabricaLazy(LazyDataModel<ModeloFabricaAdapter> listaModeloFabricaLazy) {
		this.listaModeloFabricaLazy = listaModeloFabricaLazy;
	}

	public ImagenRepuesto getImagenRepuestoEditar() {
		return imagenRepuestoEditar;
	}

	public void setImagenRepuestoEditar(ImagenRepuesto imagenRepuestoEditar) {
		this.imagenRepuestoEditar = imagenRepuestoEditar;
	}

	public ImagenRepuesto getImagenRepuestoDesasignar() {
		return imagenRepuestoDesasignar;
	}

	public void setImagenRepuestoDesasignar(ImagenRepuesto imagenRepuestoDesasignar) {
		this.imagenRepuestoDesasignar = imagenRepuestoDesasignar;
	}

	public Imagen getImagenEliminar() {
		return imagenEliminar;
	}

	public void setImagenEliminar(Imagen imagenEliminar) {
		this.imagenEliminar = imagenEliminar;
	}
	
}
